home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 25 / AMIGAplus Sonderheft 25 (2000)(Falke)(DE)(Track 1 of 4)[!].iso / PublicDomain / Anwendungen / AmigaEYE_V39.7 / ScreenNotifly.lha / ScreenNotify / src / screennotify.h < prev    next >
C/C++ Source or Header  |  1995-03-26  |  2KB  |  84 lines

  1. /*
  2.  * screennotify.h V1.0
  3.  *
  4.  * Main include file
  5.  *
  6.  * (c) 1995 Stefan Becker
  7.  */
  8.  
  9. /* OS include files */
  10. #include <dos/dos.h>
  11. #include <exec/libraries.h>
  12. #include <exec/memory.h>
  13. #include <exec/nodes.h>
  14. #include <exec/resident.h>
  15. #include <exec/semaphores.h>
  16. #include <intuition/screens.h>
  17.  
  18. /* OS function prototypes */
  19. #include <clib/alib_protos.h>
  20. #include <clib/exec_protos.h>
  21. #include <clib/intuition_protos.h>
  22.  
  23. /* OS function inline calls */
  24. #include <pragmas/exec_pragmas.h>
  25. #include <pragmas/intuition_pragmas.h>
  26.  
  27. /* Compiler specific include files */
  28. #include <lists.h>
  29.  
  30. /* Library include files */
  31. #include "/include/libraries/screennotify.h"
  32.  
  33. /* Client list data */
  34. struct ClientListData {
  35.  struct List                cld_List;
  36.  struct SignalSemaphore     cld_Semaphore;
  37.  struct ScreenNotifyMessage cld_Message;
  38.  struct MsgPort             cld_MsgPort;
  39. };
  40.  
  41. /* Library base */
  42. struct ScreenNotifyBase {
  43.  struct Library         snb_Library;
  44.  UWORD                  snb_Pad;
  45.  BPTR                   snb_Segment;
  46.  struct Library        *snb_IntuitionBase;
  47.  struct ClientListData  snb_CloseScreenClients;
  48.  struct ClientListData  snb_PubScreenClients;
  49.  struct ClientListData  snb_WorkbenchClients;
  50. };
  51.  
  52. /* CloseScreen client node */
  53. struct CloseScreenClientNode {
  54.  struct Node    cscn_Node;
  55.  struct Screen *cscn_Screen;
  56. };
  57.  
  58. /* Library version & revision */
  59. #define INTTOSTR(a) #a
  60. #define SCREENNOTIFY_REVISION 0
  61.  
  62. /* Global data */
  63. extern struct Library *SysBase;
  64. extern struct ScreenNotifyBase *ScreenNotifyBase;
  65.  
  66. /* Function prototypes */
  67.         void PatchFunctions(struct Library *);
  68.         BOOL RemoveFunctionPatches(struct Library *);
  69. __geta4 APTR _AddCloseScreenClient(__A0 struct Screen *, __A1 struct MsgPort *,
  70.                                    __D0 BYTE);
  71. __geta4 BOOL _RemCloseScreenClient(__A0 struct Node *);
  72. __geta4 APTR _AddPubScreenClient(__A0 struct MsgPort *, __D0 BYTE);
  73. __geta4 BOOL _RemPubScreenClient(__A0 struct Node *);
  74. __geta4 APTR _AddWorkbenchClient(__A0 struct MsgPort *, __D0 BYTE);
  75. __geta4 BOOL _RemWorkbenchClient(__A0 struct Node *);
  76.  
  77. /* Debugging */
  78. #ifdef DEBUG
  79. void kprintf(char *, ...);
  80. #define DEBUGLOG(x) x
  81. #else
  82. #define DEBUGLOG(X)
  83. #endif
  84.